package cn.xbtop.mq;

import cn.xbtop.config.ActiveMQConfig;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * Sender发送消息
 *
 * @author Mxb
 * @version 1.0
 * @date 2020/8/5 11:56
 */
@Service
@Log4j2
public class Sender {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    private int i;

    public void sendDirectQueue(String goodsId, String userId) {
        log.info(">>>>>>>>>>>>>>>>>秒杀请求已发送，商品id为：" + goodsId + "--用户id为：" + userId);
        try {
            Map<String, String> map = new HashMap<>();
            map.put("goodsId", goodsId);
            map.put("userId", userId);
            //第一个参数是指要发送到哪个队列里面， 第二个参数是指要发送的内容
            jmsMessagingTemplate.convertAndSend(ActiveMQConfig.QUEUE_NAME, map);
            //此处为了记录并发请求下，请求的次数及消息传递的次数
            log.info("发送请求>>>>>>>>>>>>>" + i++);
        } catch (Exception e) {
            log.error("请求发送异常：" + e.getMessage());
            e.printStackTrace();
        }
    }
}
